﻿/**********************************************************
*
* 模块名称：工厂类,负责实例化相应的类
* 当前版本：1.0
* 添加人员：楚涛
* 开始时间：2010-10-10
* 版本历史：v1.0
*
***********************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Configuration;
using System.Database;
using LXChuTao.ECG.Demo.Entity;

namespace LXChuTao.ECG.Demo.BLL.SimpleFactory
{
    public class Factory
    {
        /// <summary>
        /// 根据配置节实例化对应的类,
        /// 其中执行方法未被子类覆盖的方法,则调用基类对应的方法
        /// </summary>
        /// <returns></returns>
        public static BaseClass CreateOperate()
        {
            //根据配置节判断,实例化对应的类
            //数据库类型:1 Access,2 SQLite,3 Oracle,4 SqlServer,...
            switch (ConfigurationManager.AppSettings["DBType"])
            {
                case "1":
                    return new SubClass1();
                case "2":
                    return new SubClass2();
                case "3":
                    return new SubClass3();
                case "4":
                    return new SubClass4();
                default:
                    return new SubClass1();//修改后记得重新生成
            }
            //也可以这样,如下所示
            //switch (BaseEntity.GetDatabaseType())
            //{
            //    case DatabaseType.Access:
            //        return new SubClass1();
            //    case DatabaseType.SQLite:
            //        return new SubClass2();
            //    case DatabaseType.Oracle:
            //        return new SubClass3();
            //    case DatabaseType.SqlServer:
            //        return new SubClass4();
            //    default:
            //        return new SubClass1();//修改后记得重新生成
            //}
        }
    }
}
